package org.dwpd.service.blog;

import com.fasterxml.jackson.core.JsonProcessingException;
import org.dwpd.domain.blog.Blog;
import org.dwpd.domain.blog.BlogComment;
import org.dwpd.domain.common.Result;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.List;

/**
 * Package:org.dwpd.service
 *
 * @ClassName:BlogService
 * @Create:2024/8/18 16:21
 **/
public interface BlogService {
    /**
     * 上传图片
     * @param multipartFiles
     * @return
     */
    Result uploadImages(List<MultipartFile> multipartFiles) throws IOException;

    /**
     * 新增博客
     * @param blog
     * @return
     */
    Result saveBlog(Blog blog);

    /**
     * 查询博客详情
     * @param id
     * @return
     */
    Result getBlogDetail(Integer id) throws JsonProcessingException;

    /**
     * 评论博客
     * @param blogComment
     * @return
     * @throws JsonProcessingException
     */
    Result comment(BlogComment blogComment) throws JsonProcessingException;

    /**
     * 获取评论
     * @param id
     * @return
     */
    Result getComments(Integer id) throws IOException;

    /**
     * 删除博客
     * @param id
     * @return
     */
    Result deleteBlog(Integer id);

    /**
     * 删除评论
     * @param id
     * @return
     */
    Result deleteBlogComment(Integer id);

    /**
     * 博客点赞
     * @param id
     * @return
     */
    Result blogLiked(Integer id);

    /**
     * 博客点踩
     * @param id
     * @return
     */
    Result blogDisliked(Integer id);

    /**
     * 获取博客列表每次获取6条
     * @param pageNum
     * @return
     */

    Result getBlogList(Integer pageNum);

    Result getBlogListFromUserId(Integer userId);
}
